package com.sojson.project.sys.config.entity.po;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.sojson.base.impl.BaseLogicDelBean;
import com.sojson.enums.core.EGeneralYesNo;
import com.sojson.util.StringUtil;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

/**
 * 配置表Bean
 * 
 * @author liu
 * @date 2022-08-26
 */
@Data
@ApiModel("配置表Bean")
@TableName("sys_config")
public class Config extends BaseLogicDelBean {

    private static final long serialVersionUID = 1L;
    /** 配置表主键 */
    @ApiModelProperty("配置表主键")
    private String id;
    /** 配置名 */
    @ApiModelProperty("配置名")
    private String name;
    /** 别名 */
    @TableField("`KEY`")
    @ApiModelProperty("别名")
    private String key;
    /** 配置值 */
    @ApiModelProperty("配置值")
    private String val;
    /** 类型(1:文字,2:图片,3:视频,4:文件,5:整数,6:小数,7:金额,8:Boolean值) */
    @ApiModelProperty("类型(1:文字,2:图片,3:视频,4:文件,5:整数,6:小数,7:金额,8:Boolean值)")
    private Integer type;
    /** 数字类型(1:不限,2:正数,3:负数) */
    @ApiModelProperty("数字类型(1:不限,2:正数,3:负数)")
    private Integer typeNum;
    /** 数字类型是否允许为0(1:是,0:否) */
    @ApiModelProperty("数字类型是否允许为0(1:是,0:否)")
    private Boolean typeNumIsZero;
    /** 是否内部(1:是,2:否) */
    @ApiModelProperty("是否内部(1:是,2:否)")
    private Integer isInner;
    /** 是否允许外界访问(1:是,2:否) */
    @ApiModelProperty("是否允许外界访问(1:是,2:否)")
    private Integer isVisit;
    /** 备注 */
    @ApiModelProperty("备注")
    private String remark;
    /** 排序 */
    @ApiModelProperty("排序")
    private Integer sortNum;

    public Config() {

    }

    /**
     * 插入初始化
     */
    public void saveInit() {
        if (StringUtil.isBlankObject(getSortNum())) {
            setSortNum(100);
        }
        if (StringUtil.isBlankObject(getIsInner())) {
            setIsInner(EGeneralYesNo.YES.getCode());
        }
        if (StringUtil.isBlankObject(getIsVisit())) {
            setIsVisit(EGeneralYesNo.NO.getCode());
        }
    }

    /**
     * 更新初始化
     */
    public void updateInit() {
        setUpdateNull();
    }

    /**
     * 更新初始化
     */
    public void setUpdateNull() {
        setKey(null);
        setUpdateBy(null);
        setUpdateTime(null);
    }

}